package com.design.patterns.list.proxy.staticproxy;

/**
 * 代理对象
 * 与目标对象实现相同的接口，实现相同的方法。聚合目标对象，重写接口方法时对方法增强在调用目标方法。
 * @author Wangzhiwen
 */
public class ProxyObject implements InterfaceObject{

    private InterfaceObject targetObject;

    public ProxyObject(InterfaceObject targetObject) {
        this.targetObject = targetObject;
    }

    @Override
    public void operation() {

        System.out.println("代理对象开始对目标方法进行前置增强");
        // 调用目标方法
        targetObject.operation();

        System.out.println("代表对象在执行完目标方法后的后置增强");
    }


}
